Memory storage devices are widely used by electronic devices for storing and accessing data. These memory storage devices employ various storage media in various configurations to store information.
Memory storage devices may suffer failure conditions which corrupt or destroy stored data therein. For example hard faults may cause part or all of one or more memory storage locations to destroy or corrupt data stored therein. Hard faults may include manufacturing and design defects which cause one or more memory locations to permanently or intermittently corrupt or destroy stored data therein.
Memory storage failures may also occur as a result of soft faults. Soft faults include a number of environmental conditional which may cause permanent or intermittent data corruption in an otherwise good memory storage location. For example, soft faults may be caused by signal noise, electrical interference, temperature variations (i.e. heat), shock or any other perturbance in the storage media, device, or matrix which causes one or more stored data to change, become corrupt, or be destroyed.
When data is found to have been corrupted, some memory storage systems may force a crash to avoid using the corrupted data. That is, some memory storage technologies, such as volatile storage, will lose all of its data on a crash and the new data, after restarting, may not be corrupted if the original corruption was caused by a soft error or a hard error that can be detected during the restart process. However, other memory technologies, such as some nonvolatile memory storage, do not lose their data upon powering off or crashing the system. Because the corrupted data remains in the memory storage location, subsequent read operations are able to determine that the data is corrupt. This information may be utilized by the storage device and/or an application to determine if a particular memory location has suffered an uncorrectable, persistent and/or intermittent, memory storage failure.
In some memory storage technologies, an operation to read data from a memory location causes the data to be destroyed. This is often called a destructive read operation and may result from the type of storage media used or how the memory system is designed. Some nonvolatile memory storage devices for example have destructive read operations. Destruction of the data in a particular memory location may include erasing, clearing, resetting, and/or overwriting the memory location. In such memory devices, the data read must typically be written back after being read in order to behave in a nondestructive read memory device manner.
When stored data has been corrupted in a read destructive memory device, simply crashing before the data is written back would leave the memory location in an uninitialized state that could be incorrectly interpreted as an uncorrupted value upon restart. Since the data is destroyed by a destructive read operation, the memory system loses the ability to determine whether a particular memory location has suffered an uncorrectable, persistent and/or intermittent, memory storage error. Alternatively, if an uncorrectable read was detected, writing the same uncorrected value back to the memory location may also cause a subsequent read to return data that is incorrectly interpreted as valid data. This may cause repeated corruption of data stored in that memory location.